A computer network is a collection of interconnected computing devices that exchange data and share resources. In a packet-based network, such as the Internet, the computing devices communicate data by dividing the data into small blocks called packets. The packets are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
Certain devices within a network, referred to as routers, maintain routing information that describes available routes through the network. Each route defines a path between two locations on the network. Upon receiving an incoming data packet, the router examines header information within the packet to identify the destination for the packet. Based on the header information, the router accesses the routing information, selects an appropriate route for the packet and forwards the packet accordingly.
Network Service Providers (NSPs) provide services to subscribers via subscriber devices and routers maintained by the NSPs. Routers operate within the third layer, i.e., the network layer, of the Open Systems Interconnection (OSI) reference model, and typically communicate with each other using layer three protocols. As a result, routers are often referred to as network layer devices or layer three devices. Similarly, the functionality provided by routers that facilitates provision of Internet services is often referred to as network layer functionality. The routers maintained by NSPs and used by NSPs to provide services may be referred to as Service Edge (SE) routers. NSPs may use SE routers to provide these services that are differentiated on a per-subscriber basis.
For example, an NSP may allow subscribers to receive multicast streams on their respective subscriber devices. In order to allow subscribers to receive multicast streams, SE routers process requests from subscriber devices for the multicast streams, e.g., Internet Group Management Protocol (IGMP) host membership reports. To provide requested multicast streams, the SE routers must replicate and forward packets of a multicast stream for each subscriber device that has requested the multicast stream. Replication of multicast streams on a per-subscriber basis consumes significant processing and memory resources of the routers, as well as bandwidth on the outbound network links from the routers.
The NSP may also provide service profiles for subscribers that differ from subscriber to subscriber. Each service profile may include, for example, one or more Quality of Service (QoS) classes for packets originating from or destined for the associated subscriber device. A QoS class may define a bandwidth allocation and burst size to support a level of communication throughput for subscriber devices within that QoS class. Further, the NSP may provide a QoS class for subscribers for certain packet flows on request, such as unicast packet flows associated with a Voice over Internet Protocol (VoIP) call. In order to enable throughput according to QoS class indicated in a service profile for a subscriber or requested by a subscriber for a packet flow, routers maintained by NSPs may forward packets originating from or destined for the subscriber on particular packet flows through a network, which may be designated for the QoS class and engineered to support the throughput, e.g., provide the bandwidth, associated with the QoS class.